const {
    query
} = require('./mysql-query')

let createTable = function (sql) {
    return query(sql, [])
}


let findDataById = function (table, id) {
    let _sql = "SELECT * FROM ?? WHERE id = ? "
    return query(_sql, [table, id, start, end])
}


let findDataByPage = function (table, keys, start, end) {
    let _sql = "SELECT ?? FROM ??  LIMIT ? , ?"
    return query(_sql, [keys, table, start, end])
}

let findDataByPageOrder = function (table, keys, start, end, orderField = 'id') {
    let _sql = "SELECT ?? FROM ??  ORDER BY ?? DESC LIMIT ? , ? "
    return query(_sql, [keys, table, orderField ,start, end])
}

let insertData = function (table, values) {
    let _sql = "INSERT INTO ?? SET ?"
    return query(_sql, [table, values])
}


let updateData = function (table, values, id) {
    let _sql = "UPDATE ?? SET ? WHERE id = ?"
    return query(_sql, [table, values, id])
}


let deleteDataById = function (table, id) {
    let _sql = "DELETE FROM ?? WHERE id = ?"
    return query(_sql, [table, id])
}


let select = function (table, keys) {
    let _sql = "SELECT ?? FROM ?? "
    return query(_sql, [keys, table])
}

let selectOne = function (table, keys, value) {
    let _sql = "SELECT * FROM ?? WHERE ?? = ? LIMIT 1"
    return query(_sql, [table, keys, value])
}

let count = function (table) {
    let _sql = "SELECT COUNT(*) AS total_count FROM ?? "
    return query(_sql, [table])
}

module.exports = {
    createTable,
    findDataById,
    findDataByPage,
    findDataByPageOrder,
    deleteDataById,
    insertData,
    updateData,
    select,
    selectOne,
    count,
}